// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: braces fieldsfirst space lnc package org.achartengine; import android.graphics.RectF; import android.view.MotionEvent; import org.achartengine.chart.AbstractChart; import org.achartengine.chart.RoundChart; import org.achartengine.chart.XYChart; import org.achartengine.renderer.DefaultRenderer; import org.achartengine.tools.Pan; import org.achartengine.tools.PanListener; import org.achartengine.tools.Zoom; import org.achartengine.tools.ZoomListener; // Referenced classes of package org.achartengine: // ITouchHandler, GraphicalView public class TouchHandler implements ITouchHandler { private DefaultRenderer a; private float b; private float c; private float d; private float e; private RectF f; private Pan g; private Zoom h; private GraphicalView i; public TouchHandler(GraphicalView graphicalview, AbstractChart abstractchart) { f = new RectF(); i = graphicalview; f = i.getZoomRectangle(); if (abstractchart instanceof XYChart) { a = ((XYChart)abstractchart).getRenderer(); } else { a = ((RoundChart)abstractchart).getRenderer(); } if (a.isPanEnabled()) { g = new Pan(abstractchart); } if (a.isZoomEnabled()) { h = new Zoom(abstractchart, true, 1.0F); } } private void a(float f1, int j) { float f2 = Math.min(Math.max(f1, 0.9F), 1.1F); if ((double)f2 > 0.90000000000000002D && (double)f2 < 1.1000000000000001D) { h.setZoomRate(f2); h.apply(j); } } public void addPanListener(PanListener panlistener) { if (g != null) { g.addPanListener(panlistener); } } public void addZoomListener(ZoomListener zoomlistener) { if (h != null) { h.addZoomListener(zoomlistener); } } public boolean handleTouch(MotionEvent motionevent) { int j = motionevent.getAction(); if (a == null || j != 2) goto _L2; else goto _L1 _L1: if (b < 0.0F && c < 0.0F) goto _L4; else goto _L3 _L3: float f1; float f2; f1 = motionevent.getX(0); f2 = motionevent.getY(0); if (motionevent.getPointerCount() <= 1 || d < 0.0F && e < 0.0F || !a.isZoomEnabled()) goto _L6; else goto _L5 _L5: float f3 = motionevent.getX(1); float f4 = motionevent.getY(1); float f5 = Math.abs(f1 - f3); float f6 = Math.abs(f2 - f4); float f7 = Math.abs(b - d); float f8 = Math.abs(c - e); float f9 = Math.abs(f2 - c) / Math.abs(f1 - b); float f10 = Math.abs(f4 - e) / Math.abs(f3 - d); if ((double)f9 <= 0.25D && (double)f10 <= 0.25D) { a(f5 / f7, 1); } else if ((double)f9 >= 3.73D && (double)f10 >= 3.73D) { a(f6 / f8, 2); } else { float f11; if (Math.abs(f1 - b) >= Math.abs(f2 - c)) { f11 = f5 / f7; } else { f11 = f6 / f8; } a(f11, 0); } _L9: d = f3; e = f4; _L7: b = f1; c = f2; i.repaint(); return true; _L6: if (a.isPanEnabled()) { g.apply(b, c, f1, f2); d = 0.0F; e = 0.0F; } if (true) goto _L7; else goto _L2 _L2: if (j == 0) { b = motionevent.getX(0); c = motionevent.getY(0); if (a != null && a.isZoomEnabled() && f.contains(b, c)) { if (b < f.left + f.width() / 3F) { i.zoomIn(); } else if (b < f.left + (2.0F * f.width()) / 3F) { i.zoomOut(); } else { i.zoomReset(); } return true; } } else if (j == 1 || j == 6) { b = 0.0F; c = 0.0F; d = 0.0F; e = 0.0F; if (j == 6) { b = -1F; c = -1F; } } _L4: if (!a.isClickEnabled()) { return true; } return false; if (true) goto _L9; else goto _L8 _L8: } public void removePanListener(PanListener panlistener) { if (g != null) { g.removePanListener(panlistener); } } public void removeZoomListener(ZoomListener zoomlistener) { if (h != null) { h.removeZoomListener(zoomlistener); } } }